package com.shujia.wyh.day06;

/*
    数组元素逆序 (就是把元素对调)
    举例：1，2，3，4，5   ----> 5，4，3，2，1
 */
public class ArrayTest3 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};

        //按照分析找规律
        //将第0索引的值与length-1索引的值做交换
        //将第1索引的值与length-1-1索引的值做交换
        //将第2索引的值与length-1-2索引的值做交换
        //.....
        //直到索引是length/2的时候，停止交换
//        int temp = arr[0];
//        arr[0] = arr[arr.length-1-0];
//        arr[arr.length-1-0] = temp;
//
//        int temp2 = arr[1];
//        arr[1] = arr[arr.length-1-1];
//        arr[arr.length-1-1] = temp2;

        System.out.println("逆序之前：");
        printArray(arr);

        int[] res1 = niXu(arr);
        System.out.println("逆序之后：");
        printArray(res1);

        int[] res2 = niXu2(arr);
        System.out.println("逆序后是：");
        printArray(res2);

    }

    /**
     *  返回值类型：int[]
     *  参数列表：int[] arr
     */
    public static int[] niXu2(int[] arr){
        for(int start=0,end=arr.length-1;start<=end;start++,end--){
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
        return arr;
    }



    /**
     * 返回值类型：int[]
     * 参数列表：int[] arr
     */
    public static int[] niXu(int[] arr) {
        for (int i = 0; i < arr.length / 2; i++) {
            int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }
        return arr;
    }

    public static void printArray(int[] arr){
        for(int i=0;i<arr.length;i++){
//            System.out.println(arr2[i]);
            if(i==0){
                System.out.print("["+arr[i]+",");
            }else if(i==arr.length-1){
                System.out.print(arr[i]+"]\n");
            }else {
                System.out.print(arr[i]+",");
            }
        }
    }
}
